import {
	bigint,
	binary,
	boolean,
	char,
	date,
	datetime,
	decimal,
	double,
	float,
	int,
	json,
	mediumint,
	mysqlEnum,
	mysqlTable,
	real,
	serial,
	smallint,
	text,
	time,
	timestamp,
	tinyint,
	varbinary,
	varchar,
	year,
} from 'drizzle-orm/mysql-core';

export const allDataTypes = mysqlTable('all_data_types', {
	int: int('integer'),
	tinyint: tinyint('tinyint'),
	smallint: smallint('smallint'),
	mediumint: mediumint('mediumint'),
	biginteger: bigint('bigint', { mode: 'bigint' }),
	bigintNumber: bigint('bigint_number', { mode: 'number' }),
	real: real('real'),
	decimal: decimal('decimal'),
	double: double('double'),
	float: float('float'),
	serial: serial('serial'),
	binary: binary('binary', { length: 255 }),
	varbinary: varbinary('varbinary', { length: 256 }),
	char: char('char', { length: 255 }),
	varchar: varchar('varchar', { length: 256 }),
	text: text('text'),
	boolean: boolean('boolean'),
	dateString: date('date_string', { mode: 'string' }),
	date: date('date', { mode: 'date' }),
	datetime: datetime('datetime', { mode: 'date' }),
	datetimeString: datetime('datetimeString', { mode: 'string' }),
	time: time('time'),
	year: year('year'),
	timestampDate: timestamp('timestamp_date', { mode: 'date' }),
	timestampString: timestamp('timestamp_string', { mode: 'string' }),
	json: json('json'),
	mysqlEnum: mysqlEnum('popularity', ['unknown', 'known', 'popular']),
});
